package com.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

public class hkeyUnit {
    public static void hkey(byte[] pv, byte[] hd, byte[] pv1, int len, byte[] st, int stlen) {
        try {
            // 获取 SHA-256 的 MessageDigest 实例
            MessageDigest sha256 = MessageDigest.getInstance("SHA-256");

            // 更新 hd 和 pv 数组
            for (int i = 0; i < len; i++) {
                sha256.update(hd[i]);
                if (i < pv.length) {  // 添加数组边界检查
                    sha256.update(pv[i]);
                }
            }

            System.out.println("hd的值是："+ Arrays.toString(hd));
            System.out.println("没加密前pv的值是；"+Arrays.toString(pv));

            // 更新 st 数组
            for (int i = 0; i < stlen; i++) {
                sha256.update(st[i]);
            }
            System.out.println("st的值是:"+Arrays.toString(st));

            // 计算哈希结果
            byte[] result = sha256.digest();
            // 将结果复制到 pv 数组
            System.arraycopy(result, 0, pv, 0, len);
            System.out.println("pv的最终值是:"+Arrays.toString(pv));
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }
}
